/*
 * ActualizarIndicadores.java
 *
 * Created on 10/11/2008, 04:01:12 PM
 */
package investigaciones_itm.Administracion;

import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Body;
import com.sun.webui.jsf.component.Button;
import com.sun.webui.jsf.component.DropDown;
import com.sun.webui.jsf.component.Form;
import com.sun.webui.jsf.component.Head;
import com.sun.webui.jsf.component.Html;
import com.sun.webui.jsf.component.Label;
import com.sun.webui.jsf.component.Link;
import com.sun.webui.jsf.component.Listbox;
import com.sun.webui.jsf.component.MessageGroup;
import com.sun.webui.jsf.component.Page;
import com.sun.webui.jsf.component.PanelGroup;
import com.sun.webui.jsf.component.PanelLayout;
import com.sun.webui.jsf.component.RadioButtonGroup;
import com.sun.webui.jsf.component.Tab;
import com.sun.webui.jsf.component.TabSet;
import com.sun.webui.jsf.component.TextArea;
import com.sun.webui.jsf.component.TextField;
import com.sun.webui.jsf.model.DefaultOptionsList;
import com.sun.webui.jsf.model.Option;
import com.sun.webui.jsf.model.SingleSelectOptionsList;
import javax.faces.FacesException;
import investigaciones_itm.ApplicationBean1;
import investigaciones_itm.SessionBean1;
import investigaciones_itm.RequestBean1;
import javax.faces.component.html.HtmlMessages;
import javax.faces.component.html.HtmlSelectBooleanCheckbox;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.event.ValueChangeEvent;
import itm.vo.administracion.IndicadoresVO;
import itm.bo.administracion.IndicadoresBO;
import itm.exception.ControlException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UISelectItems;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpSession;

/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 *
 * @author BISA20
 */
public class ActualizarIndicadores extends AbstractPageBean {

    private IndicadoresVO indicadoresVO = new IndicadoresVO();
    private IndicadoresBO indicadoresBO = new IndicadoresBO();
    private boolean boolLista;
    private boolean boolActualiza;
    private HttpSession session;
    private static final String ID_SESSION_ACTUALIZAR_INDICADORES = "actualizar.indicadores";
    private DropDown dropCriterio = new DropDown();
    private SingleSelectOptionsList optionCriterio = new SingleSelectOptionsList();
    private DropDown dropProyecto = new DropDown();
    private SingleSelectOptionsList optionProyecto = new SingleSelectOptionsList();
    private DropDown dropProducto = new DropDown();
    private SingleSelectOptionsList optionProducto = new SingleSelectOptionsList();


    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
        radioButtonGroup1DefaultOptions.setOptions(new com.sun.webui.jsf.model.Option[]{new com.sun.webui.jsf.model.Option("tipoProyecto", "Tipo Proyecto"), new com.sun.webui.jsf.model.Option("tipoProducto", "Tipo Producto")});
        
    }
    private Page page1 = new Page();

    public Page getPage1() {
        return page1;
    }

    public void setPage1(Page p) {
        this.page1 = p;
    }
    private Html html1 = new Html();

    public Html getHtml1() {
        return html1;
    }

    public void setHtml1(Html h) {
        this.html1 = h;
    }
    private Head head1 = new Head();

    public Head getHead1() {
        return head1;
    }

    public void setHead1(Head h) {
        this.head1 = h;
    }
    private Link link1 = new Link();

    public Link getLink1() {
        return link1;
    }

    public void setLink1(Link l) {
        this.link1 = l;
    }
    private Body body1 = new Body();

    public Body getBody1() {
        return body1;
    }

    public void setBody1(Body b) {
        this.body1 = b;
    }
    private Form form1 = new Form();

    public Form getForm1() {
        return form1;
    }

    public void setForm1(Form f) {
        this.form1 = f;
    }
    private PanelGroup groupPanel1 = new PanelGroup();

    public PanelGroup getGroupPanel1() {
        return groupPanel1;
    }

    public void setGroupPanel1(PanelGroup pg) {
        this.groupPanel1 = pg;
    }
    private TabSet tabSet1 = new TabSet();

    public TabSet getTabSet1() {
        return tabSet1;
    }

    public void setTabSet1(TabSet ts) {
        this.tabSet1 = ts;
    }
    private Tab tab1 = new Tab();

    public Tab getTab1() {
        return tab1;
    }

    public void setTab1(Tab t) {
        this.tab1 = t;
    }
    private PanelLayout layoutPanel1 = new PanelLayout();

    public PanelLayout getLayoutPanel1() {
        return layoutPanel1;
    }

    public void setLayoutPanel1(PanelLayout pl) {
        this.layoutPanel1 = pl;
    }
    private HtmlSelectOneListbox listboxCriterio1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxCriterio1() {
        return listboxCriterio1;

    }

    public void setListboxCriterio1(HtmlSelectOneListbox hsol) {
        this.listboxCriterio1 = hsol;
    }
    private Label label1 = new Label();

    public Label getLabel1() {
        return label1;
    }

    public void setLabel1(Label l) {
        this.label1 = l;
    }
    private TextField areaItem1 = new TextField();

    public TextField getAreaItem1() {
        return areaItem1;
    }

    public void setAreaItem1(TextField tf) {
        this.areaItem1 = tf;
    }
    private HtmlSelectBooleanCheckbox checkbox1 = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckbox1() {
        return checkbox1;
    }

    public void setCheckbox1(HtmlSelectBooleanCheckbox hsbc) {
        this.checkbox1 = hsbc;
    }
    private RadioButtonGroup radioButtonGroup1 = new RadioButtonGroup();

    public RadioButtonGroup getRadioButtonGroup1() {
        return radioButtonGroup1;
    }

    public void setRadioButtonGroup1(RadioButtonGroup rbg) {
        this.radioButtonGroup1 = rbg;
    }
    private SingleSelectOptionsList radioButtonGroup1DefaultOptions = new SingleSelectOptionsList();

    public SingleSelectOptionsList getRadioButtonGroup1DefaultOptions() {
        return radioButtonGroup1DefaultOptions;
    }

    public void setRadioButtonGroup1DefaultOptions(SingleSelectOptionsList ssol) {
        this.radioButtonGroup1DefaultOptions = ssol;
    }
    private Label label4 = new Label();

    public Label getLabel4() {
        return label4;
    }

    public void setLabel4(Label l) {
        this.label4 = l;
    }
    private TextField areaPeso1 = new TextField();

    public TextField getAreaPeso1() {
        return areaPeso1;
    }

    public void setAreaPeso1(TextField tf) {
        this.areaPeso1 = tf;
    }
    private HtmlSelectOneListbox listboxTipoProducto1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxTipoProducto1() {


        return listboxTipoProducto1;
    }

    public void setListboxTipoProducto1(HtmlSelectOneListbox hsol) {
        this.listboxTipoProducto1 = hsol;
    }
    private HtmlSelectOneListbox listboxTipoProyecto1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxTipoProyecto1() {


        return listboxTipoProyecto1;
    }

    public void setListboxTipoProyecto1(HtmlSelectOneListbox hsol) {
        this.listboxTipoProyecto1 = hsol;
    }
    private Button buttonActualizar = new Button();

    public Button getButtonActualizar() {
        return buttonActualizar;
    }

    public void setButtonActualizar(Button b) {
        this.buttonActualizar = b;
    }
    private Label label5 = new Label();

    public Label getLabel5() {
        return label5;
    }

    public void setLabel5(Label l) {
        this.label5 = l;
    }
    private Label areaverNombreItem = new Label();

    public Label getAreaverNombreItem() {
        return areaverNombreItem;
    }

    public void setAreaverNombreItem(Label l) {
        this.areaverNombreItem = l;
    }
    private Label label6 = new Label();

    public Label getLabel6() {
        return label6;
    }

    public void setLabel6(Label l) {
        this.label6 = l;
    }
    private Label label7 = new Label();

    public Label getLabel7() {
        return label7;
    }

    public void setLabel7(Label l) {
        this.label7 = l;
    }
    private Label label8 = new Label();

    public Label getLabel8() {
        return label8;
    }

    public void setLabel8(Label l) {
        this.label8 = l;
    }
    private Label areaVerTipo = new Label();

    public Label getAreaVerTipo() {
        return areaVerTipo;
    }

    public void setAreaVerTipo(Label l) {
        this.areaVerTipo = l;
    }
    private Label areaNomCriterio = new Label();

    public Label getAreaNomCriterio() {
        return areaNomCriterio;
    }

    public void setAreaNomCriterio(Label l) {
        this.areaNomCriterio = l;
    }
    private Label areaVerRequerido = new Label();

    public Label getAreaVerRequerido() {
        return areaVerRequerido;
    }

    public void setAreaVerRequerido(Label l) {
        this.areaVerRequerido = l;
    }
    private Label label2 = new Label();

    public Label getLabel2() {
        return label2;
    }

    public void setLabel2(Label l) {
        this.label2 = l;
    }
    private Button button2Cancelar = new Button();

    public Button getButton2Cancelar() {
        return button2Cancelar;
    }

    public void setButton2Cancelar(Button b) {
        this.button2Cancelar = b;
    }
    private TextField textField1 = new TextField();

    public TextField getTextField1() {
        return textField1;
    }

    public void setTextField1(TextField tf) {
        this.textField1 = tf;
    }
    private Label label3 = new Label();

    public Label getLabel3() {
        return label3;
    }

    public void setLabel3(Label l) {
        this.label3 = l;
    }
    private Label areatipoProducto = new Label();

    public Label getAreatipoProducto() {
        return areatipoProducto;
    }

    public void setAreatipoProducto(Label l) {
        this.areatipoProducto = l;
    }
    private Button buttonVolver = new Button();

    public Button getButtonVolver() {
        return buttonVolver;
    }

    public void setButtonVolver(Button b) {
        this.buttonVolver = b;
    }
    private HtmlMessages messageList1 = new HtmlMessages();

    public HtmlMessages getMessageList1() {
        return messageList1;
    }

    public void setMessageList1(HtmlMessages hm) {
        this.messageList1 = hm;
    }

    // </editor-fold>
    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public ActualizarIndicadores() {
        String idItem = "";
        indicadoresVO = getRequestBean1().getIndicadoresVO();
        this.inicializar();
        this.cargarVariablesSessionLocal();
        consultarIndicador(indicadoresVO);
        consultarIndicadorProducto(indicadoresVO);
        setBoolActualiza(true);
        this.getSession().setAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "boolActualiza", isBoolActualiza());
    }

    protected void inicializar() {
        this.cargarItemsCriterio();
        this.cargarItemsProyecto();
        this.cargarItemsProducto();
    }

    protected void cargarItemsCriterio() {
        Option option[];
        String idCriterio;
        String nombreCriterio;
        IndicadoresBO indicadorBO = new IndicadoresBO();
        List<IndicadoresVO> listaIndicador = new ArrayList<IndicadoresVO>();
        try {
            listaIndicador = indicadorBO.listarIndicadores();
            option = new Option[listaIndicador.size()];
            for (int i = 0; i < listaIndicador.size(); i++) {
                idCriterio = listaIndicador.get(i).getId_criterio();
                nombreCriterio = listaIndicador.get(i).getNombreCriterio();
                option[i] = new Option(idCriterio, nombreCriterio);

            } // end for
            optionCriterio.setOptions(option);
            this.getSession().setAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionCriterio", this.getOptionCriterio());
        } catch (Exception e) {
            e.getStackTrace();
        }
    }

    protected void cargarItemsProyecto() {
        Option option[];
        String idTipoProyecto;
        String nombreTipoProyecto;
        IndicadoresBO indicadorBO = new IndicadoresBO();
        List<IndicadoresVO> listatipoProyecto = new ArrayList<IndicadoresVO>();
        try {
            listatipoProyecto = indicadorBO.listartipoProyecto();
            option = new Option[listatipoProyecto.size()];
            for (int i = 0; i < listatipoProyecto.size(); i++) {
                idTipoProyecto = listatipoProyecto.get(i).getIdtipoProyecto();
                nombreTipoProyecto = listatipoProyecto.get(i).getNombreTipoProyecto();
                option[i] = new Option(idTipoProyecto, nombreTipoProyecto);
            } // end for
            optionProyecto.setOptions(option);
            this.getSession().setAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionProyecto", this.getOptionProyecto());
        } catch (Exception e) {
            e.getStackTrace();
        }
    }

    protected void cargarItemsProducto() {
        Option option[];
        String idTipoProducto;
        String nombreTipoProducto;
        IndicadoresBO indicadorBO = new IndicadoresBO();
        List<IndicadoresVO> listatipoProducto = new ArrayList<IndicadoresVO>();
        try {
            listatipoProducto = indicadorBO.listartipoProducto();
            option = new Option[listatipoProducto.size()];
            for (int i = 0; i < listatipoProducto.size(); i++) {
                idTipoProducto = listatipoProducto.get(i).getIdTipoProducto();
                nombreTipoProducto = listatipoProducto.get(i).getNombreTipoProducto();
                option[i] = new Option(idTipoProducto, nombreTipoProducto);
            } // end for
            optionProducto.setOptions(option);
            this.getSession().setAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionProducto", this.getOptionProducto());
        } catch (Exception e) {
            e.getStackTrace();
        }
    }

    protected void cargarVariablesSessionLocal() {
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "boolLista") != null) {
            setBoolLista((Boolean) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "boolLista"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "boolActualiza") != null) {
            setBoolActualiza((Boolean) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "boolActualiza"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "listboxCriterio1") != null) {
            setListboxCriterio1((HtmlSelectOneListbox) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "listboxCriterio1"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "listboxTipoProyecto1") != null) {
            setListboxTipoProyecto1((HtmlSelectOneListbox) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "listboxTipoProyecto1"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "listboxTipoProducto1") != null) {
            setListboxTipoProducto1((HtmlSelectOneListbox) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "listboxTipoProducto1"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionCriterio") != null) {
            setOptionCriterio((SingleSelectOptionsList) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionCriterio"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionProyecto") != null) {
            setOptionProyecto((SingleSelectOptionsList) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionProyecto"));
        }
        if (this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionProducto") != null) {
            setOptionProducto((SingleSelectOptionsList) this.getSession().getAttribute(ID_SESSION_ACTUALIZAR_INDICADORES + "optionProducto"));
        }
    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here

        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("ActualizarIndicadores Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

    // </editor-fold>
    // Perform application initialization that must complete
    // *after* managed components are initialized
    // TODO - add your own initialization code here
    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }

    public void checkbox1_processValueChange(ValueChangeEvent vce) {
    }
    private String prueba = "";

    public String radioButtonGroup1_processValueChange(ValueChangeEvent vce) {

        prueba = (String) vce.getNewValue();

        if (prueba.equals("tipoProyecto")) {

            listboxTipoProyecto1.setRendered(true);
            listboxTipoProducto1.setRendered(false);

        }
        if (prueba.equals("tipoProducto")) {

            listboxTipoProducto1.setRendered(true);
            listboxTipoProyecto1.setRendered(false);
        }
        return prueba;

    }

    public void consultarIndicador(IndicadoresVO indicadoresVO) {

        indicadoresBO = new IndicadoresBO();

        try {

            //labeliditem.setValue( indicadoresVO);
           
            indicadoresBO.consultarItemProyecto(indicadoresVO);

            String nombreItem = indicadoresVO.getNombreItem();
            String idCriterio = indicadoresVO.getId_criterio();
            String nombreCriterio = indicadoresVO.getNombreCriterio();
            String idTipoProyecto = indicadoresVO.getIdtipoProyecto();
            String tipoProyecto = indicadoresVO.getNombreTipoProyecto();
            String peso = indicadoresVO.getPeso();
            String requerido = indicadoresVO.getRequerido();
            String idITem = indicadoresVO.getIdItem();

            
            


            //labeliditem.setValue(idITem);
            if (isBoolActualiza() == false) {
                if(requerido!=null){
                if(requerido.equals("S")){
             checkbox1.setSelected(true);
            }
                }
                if(tipoProyecto!=null){
            radioButtonGroup1.setValue("tipoProyecto");
                }
                areaverNombreItem.setValue(nombreItem);
                areaNomCriterio.setValue(nombreCriterio);
                areaVerTipo.setValue(tipoProyecto);                
                areaPeso1.setValue(peso);
                areaVerRequerido.setValue(requerido);
                textField1.setValue(idITem);
                dropCriterio.setValue(idCriterio);
                dropProyecto.setValue(idTipoProyecto);
             }




        } catch (Exception ce) {
            error("Error al consultar el Item de Evaluación.");
            ce.printStackTrace();
        }


    }

    public void consultarIndicadorProducto(IndicadoresVO indicadoresVO) {

        indicadoresBO = new IndicadoresBO();

        try {

            //labeliditem.setValue( indicadoresVO);            
            indicadoresBO.consultarItemProducto(indicadoresVO);



            String nombreItem = indicadoresVO.getNombreItem();
            String idCriterio = indicadoresVO.getId_criterio();
            String nombreCriterio = indicadoresVO.getNombreCriterio();
            String idTipoProducto = indicadoresVO.getIdTipoProducto();
            String tipoProducto = indicadoresVO.getNombreTipoProducto();
            String peso = indicadoresVO.getPeso();
            String requerido = indicadoresVO.getRequerido();
            String idITem = indicadoresVO.getIdItem();


            //labeliditem.setValue(idITem);
            if (isBoolActualiza() == false) {
                if(requerido!=null){
                   if(requerido.equals("S")){
             checkbox1.setSelected(true);
            }
                }
                if(tipoProducto!=null){
            radioButtonGroup1.setValue("tipoProducto");
                }
            
                areaverNombreItem.setValue(nombreItem);
                areaNomCriterio.setValue(nombreCriterio);
                areatipoProducto.setValue(tipoProducto);
                
                areaPeso1.setValue(peso);
                areaVerRequerido.setValue(requerido);
                textField1.setValue(idITem);
                dropCriterio.setValue(idCriterio);
                dropProducto.setValue(idTipoProducto);                
            }




        } catch (Exception ce) {
            error("Error al consultar los datos de la persona.");
            ce.printStackTrace();
        }




    }

    public String buttonActualizar_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.      
        indicadoresVO = new IndicadoresVO();
        indicadoresBO = new IndicadoresBO();
        String nombreIndicador = "", idCriterio = "", peso = "", idTipoProyecto = "", idTipoProducto = "", requerido = "";
        //  String prueballego=
        String aux = "", aux1 = "", idItem = "";
        prueba = (String) radioButtonGroup1.getSelected();
        Object opci = new Object();
        opci = checkbox1.getValue();
        java.lang.Boolean sino = (java.lang.Boolean) opci;
        boolean bb = (boolean) sino;

        if (opci.equals(true)) {
            requerido = "S";
        } else if (opci.equals(false)) {
            requerido = "N";
        }

        try {
            if (prueba == null) {
                error("por favor digíte los campos requeridos");
                return null;
            } else if (isBoolLista() == false) {

                idItem = (String) textField1.getValue();
                nombreIndicador = (String) areaItem1.getValue();
                idCriterio = (String) dropCriterio.getValue();
                peso = (String) areaPeso1.getValue();
                idTipoProyecto = (String) dropProyecto.getValue();

                if (nombreIndicador.equals("DIGITE EL NUEVO NOMBRE")) {
                    nombreIndicador = areaverNombreItem.getValue().toString();
                }
                if (idCriterio.equals("0")) {
                    //    idCriterio = this.obtenerCodigoMenu(itemsCriterio, areaNomCriterio.getValue().toString());
                    System.out.println("Codigooooooooooooooooooooooooooooooooooooooooooooooo " + idCriterio);
                }
                if (idTipoProyecto.equals("0")) {
//                    idTipoProyecto = this.obtenerCodigoMenu(itemsProyecto, areaVerTipo.getValue().toString());
                }
                


                indicadoresVO.setIdItem(idItem);
                indicadoresVO.setNombreItem(nombreIndicador);
                indicadoresVO.setId_criterio(idCriterio);
                indicadoresVO.setPeso(peso);
                indicadoresVO.setIdtipoProyecto(idTipoProyecto);
                indicadoresVO.setRequerido(requerido);

                aux1 = indicadoresBO.actalizarProyecto(indicadoresVO);

                info(aux1);

            } else if (isBoolLista() == true) {
                idItem = (String) textField1.getValue();
                nombreIndicador = (String) areaItem1.getValue();
                idCriterio = (String) dropCriterio.getValue();
                peso = (String) areaPeso1.getValue();
                idTipoProducto = (String) dropProducto.getValue();

                if (nombreIndicador.equals("DIGITE EL NUEVO NOMBRE")) {
                    nombreIndicador = areaverNombreItem.getValue().toString();
                }
                if (idCriterio.equals("0")) {
                    //          idCriterio = this.obtenerCodigoMenu(itemsCriterio, areaNomCriterio.getValue().toString());
                    System.out.println("Codigooooooooooooooooooooooooooooooooooooooooooooooo " + idCriterio);
                }
                if (idTipoProducto.equals("0")) {
                    //             idTipoProducto = this.obtenerCodigoMenu(itemsProyecto, areaVerTipo.getValue().toString());
                }
               
                indicadoresVO.setIdItem(idItem);
                indicadoresVO.setNombreItem(nombreIndicador);
                indicadoresVO.setId_criterio(idCriterio);
                indicadoresVO.setPeso(peso);
                indicadoresVO.setIdTipoProducto(idTipoProducto);
                indicadoresVO.setRequerido(requerido);



                aux = indicadoresBO.actalizarProducto(indicadoresVO);

                info(aux);
            } else {
                error("No se pudo modificar.");
                return null;
            }

        } catch (ControlException ce) {
            fatal("Error al crear la categoria.");
            ce.getStackTrace();
        //listaCategoria.revertChanges();
        }
        
        //Se actualiza los Argumentos de selección de Interfaz inicial para volver adecuadamente
        setBoolActualiza(false);
        this.getSession().setAttribute(ID_SESSION_ACTUALIZAR_INDICADORES+"boolActualiza", isBoolActualiza());
        return "actualizado";

    }

    protected String obtenerCodigoMenu(List<SelectItem> lista, String cadena) {
        if (cadena != null && !(cadena.equals(""))) {
            for (SelectItem item : lista) {
                if (cadena.equals(item.getLabel())) {
                    return item.getValue().toString();
                }
            }
        }
        return null;
    }

    public String tab1_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        return null;
    }

    public String button2Cancelar_action() {
        // TODO: Replace with your code
        return "volverindicadores";
    }

    public String buttonVolver_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        setBoolActualiza(false);
        this.getSession().setAttribute(ID_SESSION_ACTUALIZAR_INDICADORES+"boolActualiza", isBoolActualiza());
        return "volverindicadores";
    }

    public void areaVerTipo_processValueChange(ValueChangeEvent event) {
    }

    public boolean isBoolLista() {
        return boolLista;
    }

    public void setBoolLista(boolean boolLista) {
        this.boolLista = boolLista;
    }

    public HttpSession getSession() {
        return (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
    }

    public void setSession(HttpSession session) {
        this.session = session;
    }

    public boolean isBoolActualiza() {
        return boolActualiza;
    }

    public void setBoolActualiza(boolean boolActualiza) {
        this.boolActualiza = boolActualiza;
    }

    public DropDown getDropCriterio() {
        return dropCriterio;
    }

    public void setDropCriterio(DropDown dropCriterio) {
        this.dropCriterio = dropCriterio;
    }

    public SingleSelectOptionsList getOptionCriterio() {
        return optionCriterio;
    }

    public void setOptionCriterio(SingleSelectOptionsList optionCriterio) {
        this.optionCriterio = optionCriterio;
    }

    public DropDown getDropProducto() {
        return dropProducto;
    }

    public void setDropProducto(DropDown dropProducto) {
        this.dropProducto = dropProducto;
    }

    public DropDown getDropProyecto() {
        return dropProyecto;
    }

    public void setDropProyecto(DropDown dropProyecto) {
        this.dropProyecto = dropProyecto;
    }

    public SingleSelectOptionsList getOptionProducto() {
        return optionProducto;
    }

    public void setOptionProducto(SingleSelectOptionsList optionProducto) {
        this.optionProducto = optionProducto;
    }

    public SingleSelectOptionsList getOptionProyecto() {
        return optionProyecto;
    }

    public void setOptionProyecto(SingleSelectOptionsList optionProyecto) {
        this.optionProyecto = optionProyecto;
    }
}

